package com.tulele.vtool.mapper;

import com.tulele.vtool.model.ArticleHeadTailTemplateInfo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

@Component(value = "articleHeadTailTemplateInfoMapper")
public interface ArticleHeadTailTemplateInfoMapper {

    /**
     * 添加首尾模板信息
     * @param articleHeadTailTemplateInfo
     * @return
     */
    int addHtTemplateInfo(ArticleHeadTailTemplateInfo articleHeadTailTemplateInfo);

    /**
     * 更新首尾模板信息
     * @param articleHeadTailTemplateInfo
     * @return
     */
    int updateHtTemplateInfo(ArticleHeadTailTemplateInfo articleHeadTailTemplateInfo);

    /**
     * 查询首尾模板信息
     * @param userId
     * @return
     */
    List<ArticleHeadTailTemplateInfo> queryUserHtTemplateInfo(Integer userId);

    /**
     * 更新用户模板信息状态
     * @param htTemplateEffectStatus
     * @param htTemplatePosition
     * @param userId
     * @return
     */
    int updUserHtTemplateInfo(@Param("htTemplateEffectStatus")Integer htTemplateEffectStatus, @Param("htTemplatePosition")Integer htTemplatePosition, @Param("userId")Integer userId);

    /**
     * 根据模板内容查询模板信息
     * @param userId
     * @param htTemplateContent
     * @return
     */
    ArticleHeadTailTemplateInfo queryUserHtTemplateInfoByTemplateContent(@Param("userId")Integer userId, @Param("htTemplateContent")String htTemplateContent, @Param("htTemplatePicturePath")String htTemplatePicturePath, @Param("htTemplatePosition")Integer htTemplatePosition);

    /**
     * 查询用户应用全局的模板信息
     * @param userId
     * @return
     */
    List<ArticleHeadTailTemplateInfo> queryUserGlobalHtTemplateInfo(Integer userId);

    /**
     * 查询用户有效的模板数目
     * @param userId
     * @return
     */
    Integer queryUserHtTmeplateCount(@Param("userId")Integer userId);

    /**
     * 查询用户最早的非全局的有效的模板
     * @param userId
     * @return
     */
    Integer queryUserLastValidHtTemplateInfo(@Param("userId")Integer userId);

    /**
     * 修改最后有效的模板的状态为无效
     * @param userId
     * @param htTemplateId
     * @return
     */
    int updUserLastHtTemplateInfoStatus(@Param("userId")Integer userId, @Param("htTemplateId")Integer htTemplateId);
}